home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 March / PCWorld_2007-03_cd.bin / domacnost a kancelar / scribus / scribus-1.3.3.7-win32-install.exe / lib / lib-tk / tkMessageBox.py < prev    next >
Text File  |  2004-10-15  |  3KB  |  126 lines

  1. #
  2. # Instant Python
  3. # $Id: tkMessageBox.py,v 1.3 2004/09/18 16:01:23 loewis Exp $
  4. #
  5. # tk common message boxes
  6. #
  7. # this module provides an interface to the native message boxes
  8. # available in Tk 4.2 and newer.
  9. #
  10. # written by Fredrik Lundh, May 1997
  11. #
  12.  
  13. #
  14. # options (all have default values):
  15. #
  16. # - default: which button to make default (one of the reply codes)
  17. #
  18. # - icon: which icon to display (see below)
  19. #
  20. # - message: the message to display
  21. #
  22. # - parent: which window to place the dialog on top of
  23. #
  24. # - title: dialog title
  25. #
  26. # - type: dialog type; that is, which buttons to display (see below)
  27. #
  28.  
  29. from tkCommonDialog import Dialog
  30.  
  31. #
  32. # constants
  33.  
  34. # icons
  35. ERROR = "error"
  36. INFO = "info"
  37. QUESTION = "question"
  38. WARNING = "warning"
  39.  
  40. # types
  41. ABORTRETRYIGNORE = "abortretryignore"
  42. OK = "ok"
  43. OKCANCEL = "okcancel"
  44. RETRYCANCEL = "retrycancel"
  45. YESNO = "yesno"
  46. YESNOCANCEL = "yesnocancel"
  47.  
  48. # replies
  49. ABORT = "abort"
  50. RETRY = "retry"
  51. IGNORE = "ignore"
  52. OK = "ok"
  53. CANCEL = "cancel"
  54. YES = "yes"
  55. NO = "no"
  56.  
  57.  
  58. #
  59. # message dialog class
  60.  
  61. class Message(Dialog):
  62.     "A message box"
  63.  
  64.     command  = "tk_messageBox"
  65.  
  66.  
  67. #
  68. # convenience stuff
  69.  
  70. def _show(title=None, message=None, icon=None, type=None, **options):
  71.     if icon:    options["icon"] = icon
  72.     if type:    options["type"] = type
  73.     if title:   options["title"] = title
  74.     if message: options["message"] = message
  75.     res = Message(**options).show()
  76.     # In some Tcl installations, Tcl converts yes/no into a boolean
  77.     if isinstance(res, bool):
  78.         if res: return YES
  79.         return NO
  80.     return res
  81.  
  82. def showinfo(title=None, message=None, **options):
  83.     "Show an info message"
  84.     return _show(title, message, INFO, OK, **options)
  85.  
  86. def showwarning(title=None, message=None, **options):
  87.     "Show a warning message"
  88.     return _show(title, message, WARNING, OK, **options)
  89.  
  90. def showerror(title=None, message=None, **options):
  91.     "Show an error message"
  92.     return _show(title, message, ERROR, OK, **options)
  93.  
  94. def askquestion(title=None, message=None, **options):
  95.     "Ask a question"
  96.     return _show(title, message, QUESTION, YESNO, **options)
  97.  
  98. def askokcancel(title=None, message=None, **options):
  99.     "Ask if operation should proceed; return true if the answer is ok"
  100.     s = _show(title, message, QUESTION, OKCANCEL, **options)
  101.     return s == OK
  102.  
  103. def askyesno(title=None, message=None, **options):
  104.     "Ask a question; return true if the answer is yes"
  105.     s = _show(title, message, QUESTION, YESNO, **options)
  106.     return s == YES
  107.  
  108. def askretrycancel(title=None, message=None, **options):
  109.     "Ask if operation should be retried; return true if the answer is yes"
  110.     s = _show(title, message, WARNING, RETRYCANCEL, **options)
  111.     return s == RETRY
  112.  
  113.  
  114. # --------------------------------------------------------------------
  115. # test stuff
  116.  
  117. if __name__ == "__main__":
  118.  
  119.     print "info", showinfo("Spam", "Egg Information")
  120.     print "warning", showwarning("Spam", "Egg Warning")
  121.     print "error", showerror("Spam", "Egg Alert")
  122.     print "question", askquestion("Spam", "Question?")
  123.     print "proceed", askokcancel("Spam", "Proceed?")
  124.     print "yes/no", askyesno("Spam", "Got it?")
  125.     print "try again", askretrycancel("Spam", "Try again?")
  126.